// top doc Doxygen page  for minuit2


/**

\page Minuit2Page Minuit2


The <b>Minuit2</b> library is a new object-oriented implementation, written in C++, of the popular MINUIT minimization package.
These new version provides basically all the functionality present in the old Fortran version,
with almost equivalent numerical accuracy and computational performances.
Furthermore, it contains new functionality, like the possibility to set single side parameter limits or
the FUMILI algorithm, which is an optimized method for least square and log likelihood minimizations.
The package has been originally developed by M. Winkler and F. James.
More information on the new C++ version can be found on the
<a href="http://www.cern.ch/minuit">MINUIT Web Site</a>.

<p>
Minuit2, originally developed in the SEAL project,  is now distributed within %ROOT.
The API has been then changed in this new version to follow the %ROOT coding convention (function names starting with capital letters) and the classes have been moved inside the namespace <em>ROOT::Minuit2</em>.
In addition, the %ROOT distribution contains classes needed to integrate Minuit2 in the %ROOT framework.
<p>
A new class has been introduced, ROOT::Minuit2::Minuit2Minimizer, which implements the interface
ROOT::Math::Minimizer. Within %ROOT, it can be instantiates also using the %ROOT plug-in manager. This class provides a convenient entry point for using Minuit2. An example of using this interface is
the %ROOT tutorial <em>tutorials/fit/NumericalMinimization.C</em> or
the Minuit2 test program <a href="http://root.cern.ch/viewvc/trunk/math/minuit2/test/testMinimize.cxx?view=markup"><tt>testMinimize.cxx</tt></a>.
<p>
A standalone version of Minuit2 (independent of %ROOT) can be downloaded from <A HREF="../Minuit2.tar.gz">here</A>. It does not contain the %ROOT interface and it is therefore totally independent of external packages and can be simply build using the <em>configure</em> script and then <em>make</em>. Example tests are provided in the directory <em>test/MnSim</em> and <em>test/MnTutorial</em> and they can be built with the <em>make check</em> command.
<br>
The <a  href="https://root.cern.ch/root/htmldoc/guides/minuit2/Minuit2.html">Minuit2 User Guide</a> provides all the information needed for using directly (without add-on packages like %ROOT) Minuit2.


<h2>References</h2>
<ol>
<li>F. James, <em>Fortran MINUIT Reference Manual</em> (<a href="https://cern-tex.web.cern.ch/cern-tex/minuit/minmain.html">html</a>);
<li>F. James and M. Winkler, <em>C++ MINUIT User's Guide</em> (<a href="https://root.cern.ch/root/htmldoc/guides/minuit2/Minuit2.html">html</a> and
  <a href="https://root.cern.ch/root/htmldoc/guides/minuit2/Minuit2.pdf">pdf</a>);
<li>F. James, <em>Minuit Tutorial on Function Minimization</em> (<a href="http://seal.cern.ch/documents/minuit/mntutorial.pdf">pdf</a>);
<li>F. James, <em>The Interpretation of Errors in Minuit</em> (<a href="http://seal.cern.ch/documents/minuit/mnerror.pdf">pdf</a>);
</ol>


*/
